<!DOCTYPE html>
<div id="target"></div>
<pre id="output"></pre>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
}

var style = target.style;
function showFontLonghands(fontValue)
{
    output.textContent += 'Longhands for font: ' + fontValue + '\n';
    style.font = '';
    style.font = fontValue;
    for (var i = 0; i < style.length; i++) {
        output.textContent += style[i];
        output.textContent += ': ' + style.getPropertyValue(style[i]);
        output.textContent += '\n';
    }
    output.textContent += '\n';
}

showFontLonghands('12px monospace');
showFontLonghands('12px/24px serif');
showFontLonghands('normal 12px serif');
showFontLonghands('normal normal 12px serif');
showFontLonghands('normal normal normal 12px serif');
showFontLonghands('italic small-caps 12px/24px serif');
showFontLonghands('italic bold 12px/24px serif');
showFontLonghands('small-caps bold 14px/28px Arial, sans-serif');
showFontLonghands('italic small-caps bold 14px/28px Arial, sans-serif');

// System fonts aren't resolved at parse time, so the longhands serialize as empty strings.
// Platform specific system font computed styles are covered in fast/css/css2-system-fonts.html.
showFontLonghands('caption');
showFontLonghands('icon');
showFontLonghands('menu');
showFontLonghands('message-box');
showFontLonghands('small-caption');
showFontLonghands('status-bar');
showFontLonghands('-webkit-mini-control');
showFontLonghands('-webkit-small-control');
showFontLonghands('-webkit-control');

// Invalid values should yield no longhands.
showFontLonghands('italic small-caps bold 12px/24px');
showFontLonghands('italic small-caps bold 12px');
showFontLonghands('italic small-caps bold /12px serif');
showFontLonghands('italic small-caps small-caps 12px serif');
showFontLonghands('italic italic small-caps bold 12px serif');
showFontLonghands('12px/italic serif');
showFontLonghands("caption italic");
showFontLonghands("icon 12px");
showFontLonghands("icon 12px serif");
showFontLonghands("menu italic 12px");
</script>
